过滤器模式,也叫责任链模式,模仿 struts2 核心代码
需求:
    1.对于前端给过来的一串字符串,需要去掉 html 标签,敏感词
    2.处理完后再响应给前端

第一想法:
    写一个类,直接传入字符串,调用处理方法,依次处理掉需求,这样有个问题,当我改需求时需要更改处理类代码

可扩展的做法:
    定义一个接口,每个实现该接口的方法需要处理字符串,以后扩展只需新加类
这样的处理过程可以看成是一个链式的处理过程,对于需求 2 ,处理完毕后按照处理类倒序处理返回,
可以使用栈,但太麻烦, struts2 的做法是这样的,定义类 FilterChain 也是一个过程器,实现 filter 接口
以 FilterChain 启动先找到第一个过滤器,然后第一个过滤器处理完后调 FilterChain 的处理方法,
FilterChain 再找到下一个过滤器,依此类推,最后一个处理器处理完后,再处理响应再反调回来

我的理解:
    其实也可以理解为相当于有一些人在做某一件事件,每一个人有每一个人的职责,A,B,C
    A 处理完后,再让 B 处理, B 处理完后让 C 处理,然后每个人都有处理完后把结果写入某个容器的操作
    FilterChain 相当于协调人,它知道有哪些人在做这件事,处理的顺序是怎么样的
        A 处理完后通知  FilterChain ,然后 FilterChain 再通知 B 然后再依次把结果写回

应用场景
    拦截器,过滤器

